/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.ohyessoftware.sigc.infra.negocio;

import java.io.Serializable;
import java.sql.Date;
import java.sql.Time;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author Diego
 * 01/06/2011
 */
@Entity
@Table(name = "pedido_venda", schema = "sigc")
public class PedidoVenda implements Serializable{
    private static final long serialVersionUID = 1L;

    //atributos
    /******************************************************************************/
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "cod_pedido_venda")
    private Long codPedidoVenda;

    @Column(name = "data_pedido")
    private Date dataPedido;
    @Column(name = "total_pedido")
    private float totalPedido;
    @Column(name = "hora_pedido")
    private Time horaPedido;
    @Column(name = "orcamento")
    private boolean orcamento;

    //relacoes
    /******************************************************************************/
    @OneToMany(mappedBy = "pedido_venda", fetch = FetchType.LAZY)
    private List<VendaProduto> vendaProdutos;

    @OneToMany(mappedBy = "pedido_venda", fetch = FetchType.LAZY)
    private List<Parcela> parcelas;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "cod_funcionario", insertable = true, updatable = true)
    public Funcionario funcionario;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "cod_cliente", insertable = true, updatable = true)
    public Cliente cliente;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "cod_forma_pagamento", insertable = true, updatable = true)
    public FormaPagamento formaPagamento;

    //get e set
    /******************************************************************************/
    public Long getCodPedidoVenda() {
        return codPedidoVenda;
    }

    public void setCodPedidoVenda(Long codPedidoVenda) {
        this.codPedidoVenda = codPedidoVenda;
    }

    public Date getDataPedido() {
        return dataPedido;
    }

    public void setDataPedido(Date dataPedido) {
        this.dataPedido = dataPedido;
    }

    public Time getHoraPedido() {
        return horaPedido;
    }

    public void setHoraPedido(Time horaPedido) {
        this.horaPedido = horaPedido;
    }

    public boolean isOrcamento() {
        return orcamento;
    }

    public void setOrcamento(boolean orcamento) {
        this.orcamento = orcamento;
    }

    public float getTotalPedido() {
        return totalPedido;
    }

    public void setTotalPedido(float totalPedido) {
        this.totalPedido = totalPedido;
    }

    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

    public FormaPagamento getFormaPagamento() {
        return formaPagamento;
    }

    public void setFormaPagamento(FormaPagamento formaPagamento) {
        this.formaPagamento = formaPagamento;
    }

    public Funcionario getFuncionario() {
        return funcionario;
    }

    public void setFuncionario(Funcionario funcionario) {
        this.funcionario = funcionario;
    }

    public List<Parcela> getParcelas() {
        return parcelas;
    }

    public void setParcelas(List<Parcela> parcelas) {
        this.parcelas = parcelas;
    }

    public List<VendaProduto> getVendaProdutos() {
        return vendaProdutos;
    }

    public void setVendaProdutos(List<VendaProduto> vendaProdutos) {
        this.vendaProdutos = vendaProdutos;
    }

}
